using System;
using System.Collections.Generic;
using System.Linq;
namespace TTSoft.MyApp.Repositories
{
	#region using
	using TTSoft.MyApp.Models;
	#endregion
	public class TaiLieuRepository
	{
		public static List<TaiLieu> SelectAll()
		{
			return DataContext.Instance.TaiLieu.ToList();
		}

		public static TaiLieu SelectByID(int idtailieu)
		{
			return DataContext.Instance.TaiLieu.FirstOrDefault(item => item.IDTaiLieu == idtailieu );
		}

		public static bool Insert(TaiLieu obj)
		{
			try
			{
				DataContext.Instance.TaiLieu.AddObject(obj);
				DataContext.Instance.SaveChanges();
				return true;
			}
			catch
			{
				return false;
			}
		}

		public static bool Delete(int idtailieu)
		{
			try
			{
				var delitem = DataContext.Instance.TaiLieu.FirstOrDefault(item => item.IDTaiLieu == idtailieu );
				DataContext.Instance.TaiLieu.DeleteObject(delitem);
				DataContext.Instance.SaveChanges();
				return true;
			}
			catch
			{
				return false;
			}
		}

		public static bool Save()
		{
			try
			{
				DataContext.Instance.SaveChanges();
				return true;
			}
			catch
			{
				return false;
			}
		}

		public static List<TaiLieu> RetrieveByID(int idtailieu)
		{
			return (from item in DataContext.Instance.TaiLieu where  item.IDTaiLieu == idtailieu  select item).ToList();
		}

		public static List<TaiLieu> SelectByIDTacGia(int idtacgia)
		{
			var lstItem = (from item in DataContext.Instance.TaiLieu where item.IDTacGia == idtacgia select item).ToList();
			return lstItem;
		}

		public static List<TaiLieu> SelectByIDNhaXuatBan(int idnhaxuatban)
		{
			var lstItem = (from item in DataContext.Instance.TaiLieu where item.IDNhaXuatBan == idnhaxuatban select item).ToList();
			return lstItem;
		}

		public static List<TaiLieu> SelectByIDLoaiTaiLieu(int idloaitailieu)
		{
			var lstItem = (from item in DataContext.Instance.TaiLieu where item.IDLoaiTaiLieu == idloaitailieu select item).ToList();
			return lstItem;
		}

	}
}